home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / WORDPAD.PAK / FORMATPA.CPP < prev    next >
C/C++ Source or Header  |  1997-05-06  |  4KB  |  135 lines

  1. // formatpa.cpp : implementation file
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include "stdafx.h"
  14. #include "wordpad.h"
  15. #include "formatpa.h"
  16. #include "ddxm.h"
  17. #include "helpids.h"
  18.  
  19. #ifdef _DEBUG
  20. #undef THIS_FILE
  21. static char BASED_CODE THIS_FILE[] = __FILE__;
  22. #endif
  23.  
  24. const DWORD CFormatParaDlg::m_nHelpIDs[] = 
  25. {
  26.     IDC_EDIT_LEFT, IDH_WORDPAD_INDENT_LEFT,
  27.     IDC_EDIT_RIGHT, IDH_WORDPAD_INDENT_RIGHT,
  28.     IDC_EDIT_FIRST_LINE, IDH_WORDPAD_INDENT_FIRST,
  29.     IDC_BOX, IDH_COMM_GROUPBOX,
  30.     IDC_COMBO_ALIGNMENT, IDH_WORDPAD_ALIGN,
  31.     IDC_TEXT_ALIGNMENT, IDH_WORDPAD_ALIGN,
  32.     0, 0
  33. };
  34.  
  35. /////////////////////////////////////////////////////////////////////////////
  36. // CFormatParaDlg dialog
  37.  
  38. CFormatParaDlg::CFormatParaDlg(PARAFORMAT& pf, CWnd* pParent /*=NULL*/)
  39.     : CCSDialog(CFormatParaDlg::IDD, pParent)
  40. {
  41.     m_pf = pf;
  42.     if (m_pf.dwMask & PFM_ALIGNMENT)
  43.     {
  44.         if (m_pf.wAlignment & PFA_LEFT && m_pf.wAlignment & PFA_RIGHT)
  45.             m_nAlignment = 2;
  46.         else
  47.             m_nAlignment = (m_pf.wAlignment & PFA_LEFT) ? 0 : 1;
  48.     }
  49.     else
  50.         m_nAlignment = -1;
  51.     //{{AFX_DATA_INIT(CFormatParaDlg)
  52.     m_nFirst = 0;
  53.     m_nLeft = 0;
  54.     m_nRight = 0;
  55.     //}}AFX_DATA_INIT
  56. }
  57.  
  58. void CFormatParaDlg::DoDataExchange(CDataExchange* pDX)
  59. {
  60.     CCSDialog::DoDataExchange(pDX);
  61.     //{{AFX_DATA_MAP(CFormatParaDlg)
  62.     DDX_CBIndex(pDX, IDC_COMBO_ALIGNMENT, m_nAlignment);
  63.     DDX_Twips(pDX, IDC_EDIT_FIRST_LINE, m_nFirst);
  64.     DDV_MinMaxTwips(pDX, m_nFirst, -31680, 31680);
  65.     DDX_Twips(pDX, IDC_EDIT_LEFT, m_nLeft);
  66.     DDV_MinMaxTwips(pDX, m_nLeft, -31680, 31680);
  67.     DDX_Twips(pDX, IDC_EDIT_RIGHT, m_nRight);
  68.     DDV_MinMaxTwips(pDX, m_nRight, -31680, 31680);
  69.     //}}AFX_DATA_MAP
  70. }
  71.  
  72. BEGIN_MESSAGE_MAP(CFormatParaDlg, CCSDialog)
  73.     //{{AFX_MSG_MAP(CFormatParaDlg)
  74.     //}}AFX_MSG_MAP
  75. END_MESSAGE_MAP()
  76.  
  77.  
  78. /////////////////////////////////////////////////////////////////////////////
  79. // CFormatParaDlg message handlers
  80.  
  81. void CFormatParaDlg::OnOK()
  82. {
  83.     CCSDialog::OnOK();
  84.     m_pf.dwMask = 0;
  85.     if (m_nAlignment >= 0)
  86.     {
  87.         ASSERT(m_nAlignment < 3);
  88.         m_pf.dwMask |= PFM_ALIGNMENT;
  89.         m_pf.wAlignment = (WORD)((m_nAlignment == 0) ? PFA_LEFT : 
  90.             (m_nAlignment == 1) ? PFA_RIGHT : PFA_CENTER);
  91.     }
  92.     if (m_nRight != DDXM_BLANK)
  93.         m_pf.dwMask |= PFM_RIGHTINDENT;
  94.     if (m_nLeft != DDXM_BLANK && m_nFirst != DDXM_BLANK)
  95.         m_pf.dwMask |= PFM_STARTINDENT;
  96.     if (m_nFirst != DDXM_BLANK)
  97.         m_pf.dwMask |= PFM_OFFSET;
  98.  
  99.     m_pf.dxRightIndent = m_nRight;
  100.     m_pf.dxOffset = -m_nFirst;
  101.     m_pf.dxStartIndent = m_nLeft + m_nFirst;
  102. }
  103.  
  104. BOOL CFormatParaDlg::OnInitDialog() 
  105. {
  106.     CComboBox* pBox = (CComboBox*)GetDlgItem(IDC_COMBO_ALIGNMENT);
  107.     CString str;
  108.     str.LoadString(IDS_LEFT);
  109.     pBox->AddString(str);
  110.     str.LoadString(IDS_RIGHT);
  111.     pBox->AddString(str);
  112.     str.LoadString(IDS_CENTER);
  113.     pBox->AddString(str);
  114.  
  115.     if (m_nWordWrap == 0)
  116.     {
  117.         GetDlgItem(IDC_COMBO_ALIGNMENT)->EnableWindow(FALSE);
  118.         GetDlgItem(IDC_TEXT_ALIGNMENT)->EnableWindow(FALSE);
  119.     }
  120.  
  121.     m_nRight = (m_pf.dwMask & PFM_RIGHTINDENT) ? m_pf.dxRightIndent : DDXM_BLANK;
  122.     if (m_pf.dwMask & PFM_OFFSET)
  123.     {
  124.         m_nFirst = -m_pf.dxOffset;
  125.         m_nLeft = (m_pf.dwMask & PFM_STARTINDENT) ? 
  126.             m_pf.dxStartIndent + m_pf.dxOffset : DDXM_BLANK;
  127.     }
  128.     else
  129.         m_nLeft = m_nFirst = DDXM_BLANK;
  130.     
  131.     CCSDialog::OnInitDialog();
  132.     return TRUE;  // return TRUE unless you set the focus to a control
  133.                   // EXCEPTION: OCX Property Pages should return FALSE
  134. }
  135.